nana-4 [Thu, 6 Feb 2020 13:08:33 +0000 (22:08 +0900)]
theme/calendar: Don't nest all card styles for code consistency
The inconsistent styling rules "some card styles are nested, but some
are not" and "some card styles are nested, but some of their descendant
styles are defined elsewhere" are very confusing.
This commit stops nesting all card styles to make the coding style
consistent and less confusing.
nana-4 [Thu, 6 Feb 2020 12:42:13 +0000 (21:42 +0900)]
theme: Adjust calendar popover sizing
- Remove bottom blank space on the right column of the calendar popover
so that the weather card is bottom-aligned with the clear button on
the left column.
- Remove top blank space on the left column of the calendar popover so
that the message list is top-aligned with the today button on the
right column.
- Adjust .message-list-controls sizing to align with other card-styled
elements.
- Use regular `spacing` instead of margin for some spacing.
nana-4 [Tue, 4 Feb 2020 16:15:27 +0000 (01:15 +0900)]
theme: Simplify .message styling
- Use fewer properties for layout.
- Use .message-body instead of .message-content to change the body
color, and remove some color overrides.
- Fix border-radius for last .message-media-control, not only on hover.
nana-4 [Tue, 4 Feb 2020 16:03:05 +0000 (01:03 +0900)]
theme: Apply spacing to .overview-icon-with-label correctly
- Remove margin-bottom for StIcon, which is not only ineffective, but
also created a bug in app folders.
- Remove ">" which is invalid for overview icons that are not app
folders.
- Apply spacing to the correct target "StBoxLayout", not the parent
.overview-icon.overview-icon-with-label.
texture-cache: Fix invalid reads when storing used resource scales
The used_scales hash table uses g_double_hash and g_double_equal which
try to read a double from the passed pointers. The pointers however were
pointing to a float, leading to an invalid read.
The portal helper is rather sensitive because potentially-hostile Wi-Fi
networks can decide to launch it whenever they want (by blocking the
user's connection to the nmcheck domain) and load whatever web content
they want into it. So having this unsandboxed is really extraordinarily
risky. Previously it was a risk we had to accept, because WebKit did not
have a web process sandbox, but now it does. So let's bubblewrap all the
things!
Jakub Steiner [Wed, 5 Feb 2020 16:30:42 +0000 (17:30 +0100)]
theme: revert app grid button styling
- the plan was to drop the frequent/all view switcher, thus sam didn't
pay too much attention to the button styling for those. Sadly the view
switcher remains, so we should keep the old subtle styling intact.
Carlos Garnacho [Wed, 5 Feb 2020 15:49:34 +0000 (16:49 +0100)]
magnifier: Use core idletime monitor
As it's getting the idletime monitor for the seat pointer, boils
down to about the same thing. We are moving away from per-device
idletime monitors though.
Florian Müllner [Tue, 4 Feb 2020 01:35:43 +0000 (02:35 +0100)]
status/system: Fix session submenu visibility
Commit 147a743d8d7 moved the suspend and power-off actions into
the submenu that contains the log-out and switch-user actions,
but did not update the submenu visibility logic to account for
the additional actions.
As a result, the submenu is hidden when log-out and switch-user
are unavailable (like on the login screen), even if suspend and
power-off are enabled.
Florian Müllner [Sun, 26 Jan 2020 23:47:18 +0000 (00:47 +0100)]
extensionPrefs: Schedule updates check on activate
While gnome-shell will now check for extension updates, the checks
are performed infrequently. Opening the Extensions app implies that
the user's current focus is on extensions, so it is an appropriate
time to schedule another updates check.
Florian Müllner [Sun, 26 Jan 2020 23:59:19 +0000 (00:59 +0100)]
extensionSystem: Periodically check for extension updates
Now that we can download, apply and display extension updates, it is time
to actually check for updates. Schedule an update check right on startup,
then every 24 hours.
Florian Müllner [Sat, 30 Nov 2019 07:08:05 +0000 (08:08 +0100)]
extensionPrefs: Split user and system extensions
Until now, it didn't matter whether an extension was installed in the
user's home or system-wide. However with support for uninstallation,
there is now a significant different, as that action is only available
for user extensions.
Account for that by separating extensions by type, so that users don't
have to second-guess which extensions can be fully-managed and which
appear as part of the system.
Florian Müllner [Sat, 30 Nov 2019 17:11:03 +0000 (18:11 +0100)]
extensionPrefs: Include more extension details in expander
The newly added expander gives us a place where we can display
more details without cluttering the interface.
Take advantage of that by including the extension website, version
and author.
(Author is in the mockups, but will not actually be shown until
the extensions website is changed to include it in its metadata;
however best to have UI and string in place for the freezes)
Florian Müllner [Fri, 24 Jan 2020 01:02:10 +0000 (02:02 +0100)]
extensionPrefs: Move description into a expander
The description can be useful information, but also increases the
visual complexity of the extensions list. Move it into a hidden
details area that can be expanded, which unclutters the interface
while keeping the information readily available.
Florian Müllner [Sat, 30 Nov 2019 03:24:39 +0000 (04:24 +0100)]
extensionPrefs: Use actions for row controls
Actions are another mean to separate state and interactions from
the UI. Start using them for the existing controls before adding
more in follow-up commits.
Florian Müllner [Fri, 24 Jan 2020 18:00:37 +0000 (19:00 +0100)]
extensionPrefs: Add info popover to headerbar
Extensions can have a major impact on stability and performance. Now that
the tool will become the main way for users to manage their extensions, it
is an appropriate place to warn the user of that risk.
Add a small info popover to the headerbar to display that warning, together
with the previously removed hint of where to go for finding new extensions.
Florian Müllner [Sat, 30 Nov 2019 06:27:48 +0000 (07:27 +0100)]
extensionPrefs: Don't fill view
Extension rows contain both name/description and controls to
open preferences and enable/disable the extension. Those
elements become disassociated when the row expands too much
horizontally, so instead of filling the entire view, switch
to the embedded list style[0].
Florian Müllner [Sat, 30 Nov 2019 00:23:35 +0000 (01:23 +0100)]
extensionPrefs: Simplify empty placeholder
GNOME Software will remove its extension support, so we should stop
referencing it in addition to extensions.gnome.org.
In fact, the placeholder is not the best place to hint at where new
extensions can be found, as the user will never see it in case the
distribution includes pre-installed extensions.
So remove the hint altogether, we will add it back in a more prominent
place later.
With the whole placeholder now being much lighter, we can stop dimming
the remaining elements.
Jonas Dreßler [Thu, 30 Jan 2020 10:27:25 +0000 (11:27 +0100)]
dialogs: Hide caps lock warning if password entry is hidden
If all password entries in dialogs are hidden, there is either an entry
that has visible characters or no entry at all. That means we don't have
to show the caps lock warning at all, so hide it.
Jonas Dreßler [Tue, 21 Jan 2020 09:27:36 +0000 (10:27 +0100)]
networkAgent: Use shorter title strings
Since the headlines of the dialogs now use a much larger font, the
strings need to be shorter so they won't be ellipsized. So use a shorter
strings for those titles and also adjust the title-strings of the
notifications sent by the NetworkAgent to be consistent.
Jonas Dreßler [Sun, 8 Dec 2019 12:10:16 +0000 (13:10 +0100)]
windowManager: Cleanup dialog a bit
This doesn't have to be a prompt-dialog, so remove the css class, also
the MessageDialogContent doesn't need the x and y_expand properties, so
remove those, too.
Jonas Dreßler [Sun, 8 Dec 2019 12:08:13 +0000 (13:08 +0100)]
shellMountOperation: Implement new dialog design
Update the layout of the ShellMountPasswordDialog dialog according to
the new dialog design:
- Center-align all the elements of the dialog
- Align the work-spinner to the right (or left with RTL layouts) of the
password entry
- Show the entry-labels as hint text of the entry
See https://gitlab.gnome.org/GNOME/gnome-shell/issues/1343
Jonas Dreßler [Mon, 20 Jan 2020 16:40:25 +0000 (17:40 +0100)]
keyring: Implement new dialog design
Replace the ClutterGridLayout of the keyring dialog with a vertical
StBoxLayout based layout according to the new dialog design:
- Center-align all the elements of the dialog
- Remove the work-spinner because requests usually finish fast enough
- Show the entry-labels as hint text of the entry
See https://gitlab.gnome.org/GNOME/gnome-shell/issues/1343
Jonas Dreßler [Mon, 20 Jan 2020 13:55:24 +0000 (14:55 +0100)]
polkitAgent: Implement new design for polkit dialog
Implement the new design for the polkit according to the mockups in
https://gitlab.gnome.org/GNOME/gnome-shell/issues/1343:
- Center-align all the parts of the dialog
- Use a larger user avatar
- Remove the work-spinner because requests usually finish fast enough
- Show the entry-labels as hint text of the entry
Jonas Dreßler [Tue, 21 Jan 2020 09:32:59 +0000 (10:32 +0100)]
util: Move wiggle parameters to a common place
Since the wiggle effect will be used by the redesigned prompt-dialogs
and we always want to use the same parameters, move those as defaults
for the wiggle function to the util.js file.
Florian Müllner [Fri, 31 Jan 2020 08:23:48 +0000 (09:23 +0100)]
portalHelper: Require GTK 3.0
When multiple versions of a typelib are available, GI will pick the
highest one unless an explicit version is requested. So as GTK 4.0
is becoming a thing, it's time to do that.
Jonas Dreßler [Thu, 23 Jan 2020 21:36:09 +0000 (22:36 +0100)]
shellEntry: Hide caps lock warning and use animation to show it
Since the caps-lock warning adds a lot of spacing to dialogs and the
lock screen, hide it by default and only show it when necessary. To make
the transition smooth instead of just showing the label, animate it in
using the height and opacity.
Also add some bottom padding to the label so we can show or hide that
padding, too.
Jonas Dreßler [Thu, 23 Jan 2020 22:26:45 +0000 (23:26 +0100)]
theme: Move caps-lock warning to entry widget stylesheet
The caps-lock warning is more related to entries than dialogs and is
also used in gdm, which is not realated to dialogs at all. Rename the
css class to caps-lock-warning-label and move it to the entry
stylesheet.
The Animation class inherits from St.Bin and manages the scale factor
in the image loading, but the widget size doesn't change and doesn't
depend on the scale factor so when the scale factor is different
from 1 the widget size doesn't match the image size.
This patch resizes the Animation widget using the scale factor so the
widget will match the animation images sizes.
Florian Müllner [Wed, 22 Jan 2020 14:09:05 +0000 (15:09 +0100)]
extensionSystem: Install pending updates on startup
Now that we have a way to check for updates and download them, we
should actually apply them as well. Do this on startup before any
extensions are initialized, to make sure we don't run into any
conflicts with a previously loaded version.
Florian Müllner [Mon, 27 Jan 2020 00:13:49 +0000 (01:13 +0100)]
extensionDownloader: Exclude extensions with pending updates from check
While it is possible that an extension has a newer version available
than the previously downloaded update, it's more likely that we end up
downloading the same archive again. That would be a bit silly despite
the usually small size, so we can either use the metadata from the
update, or exclude the extension from the check.
The latter is much easier, so let's go with that for now.
Florian Müllner [Wed, 22 Jan 2020 14:07:45 +0000 (15:07 +0100)]
extensionDownloader: Make checkForUpdates() check for updates
Currently the method installs updates instead of merely checking for
them (or it would do, if it actually worked).
This is not just surprising considering the method name, the whole idea
of live updates is problematic and will not work properly more often
than not:
- imports are cached, so any local modules will stay at their
original version until a shell restart
- GTypes cannot be unregistered
So change the method to only download available updates, and set the
extensions' hasUpdate state accordingly.